import java.util.*;

public class Banque {

HashMap<String,Compte> Comptes = new HashMap<String,Compte>();


Banque() {
}

public void ouvrirCompte(String nom, String password) throws Exception {
    if(compteExiste(nom,password))
	   throw new Exception("Compte existant");
        else
            Comptes.put(nom, new Compte(nom,password,0));
}

public Compte getCompte(String nom, String password) throws Exception {
		if(compteExiste(nom, password))
                   return Comptes.get(nom);
		else throw new Exception("Compte inexistant !");
}

public boolean compteExiste(String nom, String password) {
    if(Comptes.containsKey(nom)) {
	if(Comptes.get(nom).getPassword() == password) {
          return  true;
        }
     else return false;   
    } 
    else return false;
}

public int fermerCompte(String nom, String password) throws Exception {
  if(compteExiste(nom, password)) {
      int solde = Comptes.get(nom).getSolde();
      Comptes.remove(nom);
      return solde;
  }
  else throw new Exception("Compte inexistant !");
}

public void deposer(int somme, Compte c) throws Exception{
    if(compteExiste(c.getNom(), c.getPassword()))
       c.setSolde(Solde(c)+somme);
    else throw new Exception("Compte inexistant !");
}

public int retirer(int somme, Compte c) throws Exception{
    if(compteExiste(c.getNom(), c.getPassword())) {
        c.setSolde(Solde(c)-somme);
	 return c.getSolde();
    }
    else throw new Exception("Compte inexistant !");
}

public int Solde(Compte c) throws Exception {
 if(compteExiste(c.getNom(), c.getPassword()))
     return c.getSolde();
 else throw new Exception("Compte inexistant !");
}

}
